The present invention relates in general to computer animation techniques. More particularly, the invention provides a method and system for interpolation of scalar fields on subdivision surfaces. Merely by way of example, the invention is described as it applies to a rendering process, but it should be recognized that the invention has a broader range of applicability.
Throughout the years, movie makers have often tried to tell stories involving make-believe creatures, far away places, and fantastic things. To do so, they have often relied on animation techniques to bring the make-believe to “life.” Two of the major paths in animation have traditionally included drawing-based animation techniques and stop motion animation techniques.
Drawing-based animation techniques were refined in the twentieth century, by movie makers such as Walt Disney and used in movies such as “Snow White and the Seven Dwarfs” (1937) and “Fantasia” (1940). This animation technique typically required artists to hand-draw or paint animated images onto transparent media or cels. After painting, each cel would then be captured or recorded onto film as one or more frames in a movie.
Stop motion-based animation techniques typically required the construction of miniature sets, props, and characters. The filmmakers would construct the sets, add props, and position the miniature characters in a pose. After the animator was happy with how everything was arranged, one or more frames of film would be taken of that specific arrangement. Stop motion animation techniques were developed by movie makers such as Willis O'Brien for movies such as “King Kong” (1933). Subsequently, these techniques were refined by animators such as Ray Harryhausen for movies including “Mighty Joe Young” (1948) and “Clash Of The Titans” (1981).
With the wide-spread availability of computers in the later part of the twentieth century, animators began to rely upon computers to assist in the animation process. This included using computers to facilitate drawing-based animation, for example, by painting images, by generating in-between images (“tweening”), and the like. This also included using computers to augment stop motion animation techniques. For example, physical models could be represented by virtual models in computer memory, and manipulated.
One of the pioneering companies in the computer graphics (CG) industry was Pixar. Pixar developed both computing platforms specially designed for CG, and rendering software now known as RenderMan®. RenderMan® was particularly well received in the CG industry and recognized with two Academy Awards®. RenderMan® software is used to convert graphical specifications of objects and convert them into one or more images. This technique is known generally in the industry as rendering.
A rendering process often uses geometric primitives to represent objects subject to projection onto an image plane. For example, the geometric primitives include subdivision surfaces. The geometric primitives are often mapped with textures and projected onto the image plane if they are visible to the viewer. For example, the texture mapping uses a texture image. The texture image includes a texture value as a function of coordinates in the texture space. The two-dimensional coordinates in the texture space are mapped with three-dimensional coordinates in the object space, which also correspond to two-dimensional coordinates on the image screen.
For example, the three-dimensional coordinates represent a vertex on a subdivision surface. The mapping between the subdivision surface and the texture image may be obtained by subdividing the texture coordinates in the same way as subdividing the object coordinates. For example, each vertex of a surface mesh is represented by object coordinates (x, y, z) corresponding to texture coordinates (s, t). The vertex may be treated as (x, y, z, s, t) so that the texture coordinates (s, t) are subdivided in the same way as the object coordinates (x, y, z). But this conventional technique often assumes that the scalar fields s and t are smooth over the entire surface.
If the scalar field s or t is not smooth over the surface, the surface mesh can be divided into several disjoint sub-meshes. For Catmull-Clark subdivision, these sub-meshes should overlap by at least one face in order to preserve continuity of other scalar fields. Such subdivision is very complicated for surface mesh with difficult topology. Alternatively, each vertex of the surface mesh can have different values for s or t if the vertex is shared by at least two faces. For example, on different faces, the vertex is associated with different s or t values. If the surface mesh is subdivided, the vertices on the subdivision surface can be calculated by bilinear interpolation of the scalar field across each face in the surface mesh. This conventional technique can preserve the desired discontinuities in the scalar field. But the bilinear interpolation is different from the subdivision interpolation for the geometry representation of (x, y, z) such as near extraordinary vertices in the subdivision mesh. For Catmull-Clark subdivision, the extraordinary vertices each have a valence other than four. These differences between bilinear and subdivision interpolation often results in “kinks” on the textured subdivision surface.
Other conventional techniques use 3D paint to project a texture onto a subdivision surface. These techniques often are difficult and complicated. For example, the 3D paint techniques may require a particular workflow aided by specialized painting packages.
Hence it is highly desirable to improve techniques for texturing on subdivision surfaces.